// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: "cloud1-8g54d6xb74e96e7d"
}) // 使用当前云环境


//引入发送邮件的类库
var nodemailer = require('nodemailer');
// 创建一个SMTP客户端配置
var config = {
  host: 'smtp.163.com', //网易163邮箱 smtp.163.com 
  port: 25, //网易邮箱端口 25  QQ邮箱端口465
  auth: {
    user: 'gjswlyfb@163.com', //邮箱账号
    pass: 'WSMOOSRKZZWDFMGR' //邮箱的授权码
  }
};
// 创建一个SMTP客户端对象
var transporter = nodemailer.createTransport(config);


// 云函数入口函数
exports.main = async (event, context) => {
  //初始化完成后才有cloud对象,所以不能放在入口函数之外
  const db = cloud.database();
  const _ = db.command;
  console.log(event);
  if (!event.willingFirstName) {
    return "参数缺省 : willingFirstName"
  }
  if (!event.willingSecondName) {
    return "参数缺省 : willingSecondName"
  }
  if (!event.realName) {
    return "参数缺省 : realName"
  }

  //ES6 —— 解构
  var {
    realName,
    willingFirstName,
    willingSecondName
  } = event;



  //准备好要用的数据
  var members = [];
  var results = [];
  var mails = [];




  //“或”的高级查询

  let res = await db.collection("Users").where({
    department: _.in([willingFirstName, willingSecondName]),
    Position: _.in(["副部长", "正部长", "副主席", "正主席", "主席", "部长"]),
  }).get();

  members = res.data;
  if (members.length > 0) {
    for (let i = 0; i < members.length; i++) {

      let dateTime = new Date();
      let yy = dateTime.getFullYear()
      let mm = dateTime.getMonth() + 1
      let dd = dateTime.getDate()
      let hh = dateTime.getHours()
      let mf = dateTime.getMinutes() < 10 ? '0' + dateTime.getMinutes() : dateTime.getMinutes()
      let ss = dateTime.getSeconds() < 10 ? '0' + dateTime.getSeconds() : dateTime.getSeconds()
      dateTime = `${yy}-${mm}-${dd} ${hh}:${mf}:${ss}`;

      // 创建一个邮件对象
      mails.push({
        // 发件人
        from: '来自科教招新邮件系统 <gjswlyfb@163.com>',
        // 主题
        subject: `【${realName}】同学向你的部门投递了一份报名表 ~ `,
        // 收件人
        to: members[i].email,
        // 邮件内容，text或者html格式
        text: `
          <h1>第一志愿：${willingFirstName} </h1>
          <h1>第二志愿：${willingSecondName} </h1>
          投递时间：${dateTime} 
          技术支持@网络研发部
          `
      });
      let res2 = await transporter.sendMail(mails[i]);
      results.push(res2);
    }
  } else {
    results = 0;
  }


  let MailToDeveloper = JSON.stringify(results);
  transporter.sendMail({
    // 发件人
    from: '来自科教招新邮件系统 <gjswlyfb@163.com>',
    // 主题
    subject: `【科教招新投递邮件】执行结果监听`,
    // 收件人
    to: ["853137327@qq.com","1412881291@qq.com"],
    // 邮件内容，text或者html格式
    text: MailToDeveloper
  });
  // transporter.sendMail({
  //   // 发件人
  //   from: '来自科教招新邮件系统 <gjswlyfb@163.com>',
  //   // 主题
  //   subject: `【科教招新投递邮件】执行结果监听`,
  //   // 收件人
  //   to: "1412881291@qq.com",
  //   // 邮件内容，text或者html格式
  //   text: MailToDeveloper
  // });

  return {
    members,
    results
  }



}